#i... do not know how to format asks w the new ui
Explore tagged Tumblr posts
thursdaysrain · 6 months ago
Text
my experience with blender and unity, together, has been a bit of a nightmare, but separately they haven't been bad. unity i've had issues with but they always felt surmountable, like, no matter what i can work around this problem.
blender i just enjoy, it has this reputation as like a weird badly designed software but maybe that's gone away w/ recent (recent as in.. years ago) ui changes. new features have been great and there isn't much for me to complain about here, but idk what a new user's experience is like. it's hard to tell people who ask me how to get started what to work with, bc everything i learned from is out of date.
the real headache comes from the transition between the two, which has been a real nightmare for me. once i'm all done working on wormgrubber 2.0, i need to put together workflow document to reference whenever i'm working on new 3d assets for unity in the future. it's a big list and it's been a real pain to discover each problem one at a time.
first and foremost it is obvious to me now that blender is not gamedev software. when i started gamedev, i split my time between learning shaders and learning 3d, not touching animation and mostly focusing on making little model display art pieces. i did this for a couple years. rigging was always a huge pain in the ass, weight painting moreso, so i just avoided it for a while. when i brought my first fully rigged piece into unity it was a nightmare, nothing looked right at all. this kind of thing honestly traumatized me, lol. i spent so much time trying to obsessively make perfect rigs bc i was terrified by shapekeys and drivers, horrified to spend hours setting something up only for it to be useless. this was wrongheaded for multiple reasons... there are so many features in blender that are just not relevant to unity and/or don't export through the only 3d format unity uses, fbx. this makes sense if you think about it for a bit, blender has a lot of features for rendering 3d animation and art but a lot of this wouldn't work in a realtime game, it's just too intensive. but! if you spend all your time learning 3D instead of specifically learning "3d for game animation" you come to lean on things like corrective smoothing or other modifiers.
3d is a weird mix of like, destructive and nondestructive workflows. blender will often let you work your way into positions you cant easily recover from without a lot of extra work or discarding work, setups that work fine within blender but absolutely will not export to unity. things like being unable to apply modifiers to models with shapekeys, but needing to apply all shapekeys to properly export a model, etc.
unity does this thing where it has very specific ideas about how things should work and it only tells you what it's doing maybe like 20% of the time. everything else is up to you to figure out the hard way. im not sure yet if this is an fbx problem or not but interpolation settings in blender aren't exported to unity, so it just comes up with its own. unity doesn't play the last frame of an animation. this makes sense for some contexts, because an animation is an interpolation between a start point and an end point, but like, nothing in unity tells you this the case. whenever i search for these things i always find forum posts, not unity documents. and you cant really change it without clumsy code slapped on top bc so much of this is below the closed off part of unity's code.
make games this way, not that way. i used to always think that when i was struggling against unity it was a sign i was designing something poorly, but now i know enough to know it's often because unity is itself struggling under the weight of choices made years ago, or half finished projects with poor documentation. arcane rules and practices i don't know bc i didn't go to college and because the knowledge is typically split across like several different jobs in a normal large studio.
i don't know how you learn this stuff other than trial and error. maybe in a college?? i dont know how other self taught indies deal with it. tutorials on youtube/etc seem to be split between like teaching you isolated tricks or teaching you very specific workflows without telling you exactly why you can't do this or that. blender tutorials are often for non-gamedevs, and unity tutorials are about following unity's design decisions without explaining them.
i know creating tutorials is a lot of effort and it's impossible to be fully comprehensive, but for something as common as 'take blender thing and put it in unity' should be for indie gamedev, i dont get why i havent seen more grumbling about this. i feel like every major snag i've come across (ones mentioned here are only a few of them) i was completely clueless about until i started doing some digging and the only thing to save me is some post from like 2016 on the unity forums.
its been a struggle!!!! i know i'm getting closer to the end of the tunnel but like every time i think it's a straight shot some new pit opens up. still, i'm getting there. my short advice to anyone is to always iterate, if you are trying to make art for games, make some art and put it in gamdev software. see what you like about it, how your desired workflow works with the software, etc. these skills arent separate, they have to be tied together.
Tumblr media
4 notes · View notes
jenoutof10 · 1 year ago
Note
I saw your post and I hope it's not too much to ask but could you explain some of the references?
hai anon!! gege akutami really loves his buddhism references and it shows in multiple ways in the jujutsu kaisen series, be it by just slamming the references into names or through the story telling and parallels in the story, i wont be covering all of em since yk theres way too much to cover. but here some ive compiled in one sitting:
(also excuse bad punctuation and formatting or whatever, as i said im doing this in one sitting and rushing ALOT)
i wanna talk abt gojo since im kinda obsessed w him lately due to the new season, so lets start w him.
gojo is pictured as a bodhisattva:
besides his first name literally meaning enlightenment, we know that in the hidden inventory arc, after getting his ass handed to him by toji, he is 'reborn' (yk, when he brought himself back from near death w RCT). he reached enlightenment and found + understood the core of jujutsu which led his rebirth as the TRUE strongest (like when the buddha reached enlightenment by understanding the core of dhamma and it marks the change from his previous life as siddhartha gautama to the buddha).
and as we all know, in the scene where he awakens, he utters the words "throughout heaven and earth, i alone am the honored one" 天上天下唯我独尊; which the buddha famously said while pointing to the heavens and the earth, after being birthed. (gojo does point both hands tht way, but finger wise he only points to the earth, not the heavens idk)
now i say he's more like a bodhisattva and not a buddha because of a certain detail, while the buddha became the enlightened one and ascended to nirvana (meaning he's free from the cycle of rebirth) he's more like a bodhisattva in which he does indeed become enlightened, just that instead of freeing himself from the cycle of rebirth, he chooses to spread his knowledge and continues teaching (the way becomes a teacher in order to raise new jujutsu sorcerers)
if anyone were to be the buddha it would be tengen, master tengen founded the jujutsu community, teaches sorcerers about jujutsu and is regarded as a deity (by some).
despite being a highly respected individual, tengen is not a much of a fighter, she's more of a teacher and is respected for their high knowledge on jujutsu
master tengen is also immortal, yet not able to exist in the outside world, instead tengen exists inside of the barriers they created (to mantain their self awareness and not yk go insane and destroy the world), which acts as a different realm. this might be a reference to how the Buddha is somewhat immortal yet not really, he lives on in his teachings (dhamma) and his students.
if tengen is the buddha, that would make kenjaku Devadatta, siddharta gautama's cousin and (self proclaimed) buddha's archenemy. i could say more but thats a story for another day.
buddhism references in the power system of jujutsu:
one of them is the etymology behind mahito's cursed technique, Idle Transfiguration - 無為転変 (Mui Tenpen)
the Mui means something along the lines of unchanging/absolute, yet it's also translated into idleness.
— on reddit someone said 無為転変 means to mutate the idleness of human affairs/to mutate the natural order, but idrk take what u will with this
in buddhism, there's a phrase called 有為転変(Ui Tenpen) which means impermanence / change, so his cursed technique is basically the opposite of the natural order
his domain expansion's name (self embodiment of perfection) has a certain buddhist ring to it i feel lol, besides that, the form of his domain might also be a reference to the thousand-armed thousand-eyed Guanyin Bodhisattva.
besides mahito, jogo and dagon's domain also have certain references in their naming (jogo's iron mountain refers to Mount Meru, which is often mentioned in buddhism and hinduism. the word 'Skandha' in dagon's basically means the factors that cause attachment)
the hand signs the characters do when casting a domain expansion are mudras; hand seals used in buddhism and hinduism(? i think), you'd often see them on statues/arcas, they're usually used during prayers (i think the most well know and the most used one is anjali mudra). for more you can check tempenensis's post, i love their posts alot LOL
there's also the whole thing about mahoraga (+ the other 10 shadows shikigamis), sukuna, toji, etc. but that would take too long and im writing this all in one go before i go to a family dinner so…
ANYWAYS i think thats all i'll talk about today, i might add more some other time but im gonna go eat dinner now bye
12 notes · View notes
lyricallymnded · 3 years ago
Note
Yay! You guys are back for a sec! I just wanted to take this moment to say hi and tell you how much I appreciate all your guys’ hard work and effort that you put into this blog and your edits. You guys are awesome and amazing! Sending lots of love ❤️
this is so sweet wtf i love you!!! thanks so much, we hope you're having a wonderful life <3
~tahlia
3 notes · View notes
boyslaughplus · 6 years ago
Text
Devlog #35 - Narrative Structure & Dynamic Personality
Tumblr media
(This same devlog has been posted on the 7th March already, but Pectin forgot to share it here, oopsie! >-<’’) Hello! It's time for another devlog, this time about Brassica's narrative structure and the way you can influence the protagonist's, Saffron's, personality (and all the consequences this has). PECTIN had to take a break from this devlog due to scheduling complications, but he'll be back with more character design insights next time!
Before we begin though, we just wanted to quickly announce that we'll be at the A MAZE. festival in Berlin in just over a month! This will be our first time attending such an event without also exhibiting one of our games so we're excited that this time around we'll get to see more of the event itself and meet lots of new people. So if you're there as well, feel free to say hi to us!
But on to the main part of this devlog:
Narrative Structure
As I explained in the last devlog, visually Brassica's presentation is very much inspired by puppet theaters. Just as the UI and the text box size had an influence on the writing itself, the overall presentation did, too. To further reinforce this idea that the player is like the audience of a play, we decided to make the narrator their own character this time. In the narrative, they're technically the one pulling the strings and telling the story but for most of Act 1 this isn't very apparent yet. From the beginning it's clear that the narrator is separate from Saffron, but the first time they actually address the player directly is at the very end after the curtain has already fallen again.
Tumblr media
Since the narrator doesn't appear in the story itself, we had thought about other ways to include them in the narrative since it wouldn't make much sense to make them a character but not give them any significance outside of telling the story. In the context of a theater performance it made the most sense to us to let the narrator (or performer) and the player (or audience) interact with each other. Especially in children's theater it's fairly common that the actors will ask the audience to do something or ask them a question to keep them engaged in the play. In the format of a visual novel this seemed like a great parallel for the choices so we decided to treat them similarly.
Aside from improvisational theater, the audience usually doesn't have much say in the actual course of a play though, so this was another issue we had to address. The most interesting idea to us was to create a rift between the story the narrator wanted to tell and the story the audience wants to see. Initially we had planned to treat this more like a conflict and almost made the narrator the antagonist. Because the player would basically force the narrator to change their story, they would in turn expect the player to take it in a direction that is coherent and makes sense. With this idea, in-game choices would have been a lot more stressful and we would have had to include various forms of a fail-state at all branching points so even if it might have been interesting in theory, we quickly realized that for the kind of lighthearted story we wanted to tell with Brassica, it didn't really fit and actually took away from the experience.
Tumblr media
So instead we decided to keep the basic conflict but make the narrator and player collaborate in telling a story both of them are happy with. This immediately made everything more positive and while there's definitely less conflict now, we have planned a few things to still make the most of the theater concept...
Since Act 1 serves to introduce the actual story of the "play" so to speak, the parallel narrative about the narrator is mainly in the background. In the beginning of Act 2 you can already see a few more instances where they directly turn to the audience (or vice versa) but our main focus will still be with the story of the princes. In the coming Acts however, there will definitely be more of these moments to make sure the theater concept isn't just a visual gimmick. But I'll go more into detail on that once you could actually see it all in-game!
Dynamic Personality
Something else we had planned fairly early on, was the fact that Saffron is our first protagonist whose personality the player can directly influence. Because he still takes part in conversations this is only to an extent, but on top of his base personality, there are three distinct nuances of Saffron that you can go for:
Internally we call them "lawful", "daring", and "soft" and pretty much every choice in the game (that isn't just between the narrator and the player) is recorded to keep track of whichever of these is the most prominent in any given playthrough.
Tumblr media
So at various points in the script, we check Saffron's current personality and depending on the result, the story can change. This varies between minor wording differences, whole unique sections of dialogue or narration, or actually different events although the latter is also the rarest case.
In practice, moments in the script where this becomes relevant can look like this (slight spoiler alert for Act 2):
if checkSafAlignment("daring"):    saf "Actually, I think I disagree.{w=0.3} You're not just anybody else to me." elif checkSafAlignment("soft"):    saf "A-actually, I don't treat everybody like this..." else:    saf "Well, everyone deserves respect, regardless how strange they may be."
Essentially Saffron always says the same thing here but when he's daring, it is kind of one of those "This isn't good, it's great" kind of sentences, while his soft version mostly sounds nervous and the lawful one rather rational.
An example for greater variations due to different personalities would be this (also Act 2 spoilers):
menu:    saf "W-well uh...{fast}"    "I suppose it might be interest~":        [...]    "I uh, was just checking on you":        [...]    "*faint*":        $setSafAlignment(2)        if checkSafAlignment("soft"):            "On the spot Prince Saffron fainted, overwhelmed by the other prince's question."            [...]        else:            "Prince Saffron tried his hardest to faint in order to escape the predicament of answering the question."            "But unfortunately he only managed to feel a little dizzy."
This second example also shows that even though the choices themselves already have an effect on Saffron's personality, the actual results could still vary depending on previous choices. So in this case, going for the "soft" answer might only work out as expected if Saffron is already soft.
Of course either of these variations have to fit into the general flow of the dialogue and narration and eventually have to return to the main branch, but even so they should make the overall experience more interesting and hopefully also add some surprises to the same events on different playthroughs!
Aside from script variations, Saffron's personality also influences the romance aspect of the game as both Hans and Ode have different preferences and might take more of a liking to a certain version of Saffron. We don't intend it to be very difficult to romance either of them (after all this is a Marry Tale!) so this takes the form of a bonus and Saffron's personality isn't the main deciding factor for which route you will get.
So yeah, those are about all important things to say on the matter! We are still in the process of finishing up Act 2, which was a little delayed this week due to administrative work we had to take care of at the studio but we will let you know when we have the release date for it!
We'll be back with another devlog in two weeks, so as always, thank you so much for reading and for your interest in our games <3
8 notes · View notes
dissonancedev · 8 years ago
Note
How on earth did you make such a nice dialogue system? Your other posts are really informative so I figured I'd ask how you coded it, there aren't really any sort of tutorials on this for Unity...
I’m not sure I could detail all of it in a single post, but I’ll do an overview of the structure of the system. If you want me to go into the specifics of any part of the system, just send me another ask and I’ll gladly answer.
Data structures: So if you don’t know about ScriptableObject, I urge you to go learn about it because it can be a very powerful tool. To explain quickly: when you extend MonoBehaviour, your class becomes a component that you can put on game objects, but when you extend ScriptableObject, the class becomes an asset. This is useful because you can have an asset that you can modify straight in the inspector (and for more freedom, you can also create a custom inspector for it).
In my case, I created 2 of those ScriptableObject. The first one is a DialogBlock, which is a container for everything that happens every time the player advance the dialog (text, animations, sounds, etc.). It looks something like this:
Tumblr media
The important point here is that every DialogBlock knows what the next DialogBlock is. If the DialogBlock is a question (represented by a bool), then I can put a different DialogBlock for every answer.
My other ScriptableObject is simply a Dialog, which represents a starting point of a dialog. It only contains a reference to the first DialogBlock. This is useful for progression because a DialogBlock with no “Next Dialog Block” (meaning that the conversation will end at this block) can have a “Next Dialog” reference. This will make it so the NPC will change its Dialog reference and have a different conversation starting point the next time you talk to it.
DialogManager & LocalizationManager: For a lot of more global tasks, I use manager classes (singletons). Let’s say you have a NPC component on a game object and this component has a reference to a Dialog asset. When you initiate the conversation, all you have to do is pass the Dialog reference to the DialogManager and it will handle everything. This means that when the conversation starts, the manager will handle showing the UI and setting up the camera as well as processing every DialogBlock every time the player advances the conversation. Now, this is a manager, it shouldn’t actually DO everything. Instead, it should call the appropriate objects that will handle it.
As for the LocalizationManager, I have a text file for every level, so it listens to a callback of the SceneManager and loads up the correct localization file when changing level. This is why the DialogBlock asset doesn’t contain a Text variable and instead contains a Key, this is to go fetch the text from the localization dictionary.
Scrolling text: A simple coroutine can do the trick if you use
yield return new WaitForSeconds(1 / (# of characters per seconds) );
As I said, it is a bit more involved for rich text. Before I start writing, I need to parse it and remove all the markup tags and keep them stored with their position in the string so I can add them correctly. Learning about Regex will prove useful at this part. This is the result I want (let’s say I want to write the word “Word” with a markup tag):
W
Wo
Wor
Word
There is also the problem of formatting as pointed out in the comments:
Tumblr media
But this is something I left for later so I can’t really help you more than that. @stijnidek gave a good explanation here so that could get you started.
Cameras: Like my previous post, I used Cinemachine Base Rig for the cameras inside the DialogBlock. For the initial camera positioning, I just did a simple algorithm that tried to imitate how the camera works in Ocarina of Time.
Shader effects: I used this tutorial, maybe it could help you too.
I hope this can get you started. As I said, this is more of an overview of the structure, but you need help for any of the subjects presented (or anything else really), just ask away and I’ll try to explain what I came up with.
Also, if anything I explain here feels wrong to you, feel free to point it out. I am by no means an expert, so a new perspective on things can only help me out too.
40 notes · View notes